package com.kcht.itsed.mws.alefacade.stdfacade;

import com.kcht.itsed.mws.alefacade.exceptions.*;
import com.kcht.itsed.mws.alemodel.ECReports;
import com.kcht.itsed.mws.alemodel.ECSpec;

import java.util.List;

public interface ALE extends ALEIntf{

	
	void define(String specName, ECSpec spec)throws DuplicateNameException,ECSpecValidationException;

	void undefine(String specName)throws NoSuchNameException;

	ECSpec getECSpec(String specName)throws NoSuchNameException;

	List<String> getECSpecNames();

	void subscribe(String specName, String notificationURI)throws NoSuchNameException, InvalidURIException ,DuplicateSubscriptionException;

	void unsubscribe(String specName, String notificationURI)throws NoSuchNameException, NoSuchSubscriberException, InvalidURIException;
	
	ECReports poll(String specName)throws NoSuchNameException;
	
	ECReports immediate(ECSpec spec)throws ECSpecValidationException;
	
	List<String> getSubscribers(String specName)throws NoSuchNameException;
	
}
